package com.gardenguell.salad.util;

import android.graphics.Bitmap;
import android.widget.ImageView;
import com.gardenguell.salad.app.AppContext;
import com.gardenguell.salad.app.Setting;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;

import java.io.File;

/**
 * @author Li.z
 *
 */
public class ImageLoaderHelper {

	private static ImageLoaderHelper instance = new ImageLoaderHelper();

	private ImageLoader mImageLoader;

	private ImageLoaderConfiguration config;

	private DisplayImageOptions options;  

	private ImageLoaderHelper() {
		mImageLoader = ImageLoader.getInstance();

		UnlimitedDiskCache fileCache = new UnlimitedDiskCache(new File(FileUtil.getDir(Setting.FILE_NAME_IMAGE))) ;

		options = new DisplayImageOptions.Builder()  
		.cacheInMemory(true)//设置下载的图片是否缓存在内存中  
		.cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中  
		.considerExifParams(true)  //是否考虑JPEG图像EXIF参数（旋转，翻转）
		.bitmapConfig(Bitmap.Config.ARGB_8888)//设置图片的解码类型//  
		.resetViewBeforeLoading(true)//设置图片在下载前是否重置，复位  
		.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间  
		.build();//构建完成  


		config = new ImageLoaderConfiguration  
				.Builder(AppContext.getContext())
		.memoryCacheExtraOptions(SystemUtils.getResolution()[0], SystemUtils.getResolution()[1]) // max width, max height，即保存的每个缓存文件的最大长宽  
		.memoryCache(new LruMemoryCache(5 * 1024 * 1024))  
		.memoryCacheSize(5 * 1024 * 1024)  
		.defaultDisplayImageOptions(options)  
		.diskCache(fileCache)                   // default  
		.diskCacheSize(50 * 1024 * 1024)        // 缓冲大小  
		.diskCacheFileCount(100)
		.build();//开始构建  

		mImageLoader.init(config);
		/**/
	}
	
	public void show(ImageView imageView,String uri){
		mImageLoader.displayImage(uri, imageView);
	}


	public static ImageLoaderHelper getInstance(){
		return instance;
	}


}
